FEXP Solver  1.0.0.0
FEXPSetting.h
Go to the documentation of this file.
1 // © FEXP, FEXPEnterprise Solver, Ing. Vaclav Rek
3 // Calculation settings.
4 // Compiler must support C++ ver.14 and later
6 #ifndef _CFEXPSETTING_H_
7 #define _CFEXPSETTING_H_
8 #include "FEXPCommon.h"
9 #include "FEXPDataContainer.h"
10 
16 #define SOLVER_CNFG_FILE_NAME "cnfg_fexp_solver.fexcfg" // name of solver configuration file
17 
24 
27  : public ICFEXPModelDataIntf
28 {
29 public:
30  // type of setting
32  ICFEXPSetting(size_t id) : _id(id) { }
33  virtual ~ICFEXPSetting() { }
34 
35  // override pure virtual base functions
36  virtual size_t GetId () override { return _id; }
37  virtual size_t GetType () override { return size_t(ESystemElementType::eSetting); }
38  virtual size_t GetThreadId () override { FEXPCOMMON_NOT_IMPLEMENTED_EX; }
39  virtual size_t GetThreadNumber() override { FEXPCOMMON_NOT_IMPLEMENTED_EX; }
40  virtual void SetThreadId (size_t id) override { FEXPCOMMON_NOT_IMPLEMENTED_EX; }
41 
42  virtual ESettingType GetSettingKind() = 0;
43 protected:
44  // [no protected members] -----------------------------
45 private:
46  size_t _id;
47 };
48 
55 
58  : public ICFEXPSetting
59 {
60 public:
61  // type of solver
63  CFEXPBaseSetting(t_fexpcommon_ct t_S, t_fexpcommon_ct t_E, t_fexpcommon_ct dt, size_t print_segment, size_t solver, size_t threads);
64  // override pure virtual base functions
65  virtual size_t GetModelId () override { FEXPCOMMON_NOT_IMPLEMENTED_EX; }
66  virtual ESettingType GetSettingKind() override { return ESettingType(GetId()); }
67 
68  t_fexpcommon_ct GetStart () { return _t_start; }
69  t_fexpcommon_ct GetEnd () { return _t_end; }
70  t_fexpcommon_ct GetDt () { return _dt; }
71  size_t GetPrintSegment() { return _print_segment; }
72  EFEXPSolverType GetSolver () { return EFEXPSolverType(_solver_kind); }
73  size_t GetThreadNumber() { return _thread_number; }
74  void SetThreadNumber(size_t value) { _thread_number = value; }
75 
76  // override pure virtual base functions for NETWORK serialization/deserialization
79 protected:
80  // [no protected members] -----------------------------
81 private:
82  t_fexpcommon_ct _t_start;
83  t_fexpcommon_ct _t_end;
84  t_fexpcommon_ct _dt;
85  size_t _print_segment;
86  size_t _solver_kind;
87  size_t _thread_number;
88 };
89 
96 
99  : public ICFEXPSetting
100 {
101 public:
102  CFEXPSolverConfigSetting(const std::map<size_t, std::string> & ips, const std::map<size_t, std::string> & node_file, const std::string & dflt_file,
103  size_t node_id, size_t dof, size_t calc_output, const std::string & res_name, const std::string & res_dir);
104  // override pure virtual base functions
105  virtual size_t GetModelId () override { FEXPCOMMON_NOT_IMPLEMENTED_EX; }
106  virtual ESettingType GetSettingKind() override { return ESettingType(GetId()); }
107 
108  std::string & GetNodeIp (size_t id) { return _node_ip [id]; }
109  std::string & GetFile (size_t id) { return _file_path[id]; }
110  std::map<size_t, std::string> & GetFilePaths () { return _file_path; }
111  std::string & GetDefaultFile () { return _file_path_default; }
112  std::map<size_t, Ptr<std::vector<std::string>>> & GetFileContent () { return _file_content; }
113  std::map<size_t, Ptr<std::vector<std::string>>> & GetFileContentDefault () { return _file_content_default; }
114  size_t GetInitClientNumber () { return _node_ip.size(); }
116 
117  size_t NodeIdToShow () { return _show_node_id; }
118  size_t NodeDofToShow () { return _show_dof; }
119  bool ShowCalcOutput () { return _show_calc_output; }
120 
121  std::string & GetResultName () { return _result_name; }
122  std::string & GetResultDirPath () { return _result_directory_path; }
123 
124  // override pure virtual base functions for NETWORK serialization/deserialization
127 protected:
128  // [no protected members] -----------------------------
129 private:
130  std::map<size_t, std::string> _node_ip;
131  std::map<size_t, std::string> _file_path;
132  std::map<size_t, Ptr<std::vector<std::string>>> _file_content;
133  std::map<size_t, Ptr<std::vector<std::string>>> _file_content_default;
134  std::string _file_path_default;
135  size_t _show_node_id;
136  size_t _show_dof;
137  bool _show_calc_output;
138  std::string _result_name;
139  std::string _result_directory_path;
140 };
141 
142 #endif // !_CFEXPSETTING_H_
virtual Ptr< t_SerializedData > NetSerialize() override
Definition: FEXPSetting.h:125
virtual size_t GetModelId() override
Definition: FEXPSetting.h:105
virtual ~ICFEXPSetting()
Definition: FEXPSetting.h:33
virtual ESettingType GetSettingKind() override
Definition: FEXPSetting.h:106
Solver configuration setting.
Definition: FEXPSetting.h:98
EFEXPSolverType
Definition: FEXPSetting.h:62
size_t NodeIdToShow()
Definition: FEXPSetting.h:117
Definition: FEXPSetting.h:62
std::string & GetDefaultFile()
Definition: FEXPSetting.h:111
Base setting related to the numerical simulation process.
Definition: FEXPSetting.h:57
virtual void NetDeserialize(Ptr< t_SerializedData > data) override
Definition: FEXPSetting.h:126
CFEXPSolverConfigSetting(const std::map< size_t, std::string > &ips, const std::map< size_t, std::string > &node_file, const std::string &dflt_file, size_t node_id, size_t dof, size_t calc_output, const std::string &res_name, const std::string &res_dir)
Definition: FEXPSetting.cpp:31
void SetThreadNumber(size_t value)
Definition: FEXPSetting.h:74
size_t NodeDofToShow()
Definition: FEXPSetting.h:118
std::map< size_t, std::string > & GetFilePaths()
Definition: FEXPSetting.h:110
std::string & GetResultDirPath()
Definition: FEXPSetting.h:122
ICFEXPSetting(size_t id)
Definition: FEXPSetting.h:32
virtual ESettingType GetSettingKind() override
Definition: FEXPSetting.h:66
size_t GetInitClientNumber()
Definition: FEXPSetting.h:114
Definition: FEXPCommon.h:276
double t_fexpcommon_ct
Definition: FEXPCommon.h:120
EFEXPSolverType GetSolver()
Definition: FEXPSetting.h:72
size_t GetThreadNumber()
Definition: FEXPSetting.h:73
Definition: FEXPSetting.h:62
Definition: FEXPSetting.h:31
size_t GetPrintSegment()
Definition: FEXPSetting.h:71
std::string & GetFile(size_t id)
Definition: FEXPSetting.h:109
#define FEXPCOMMON_NOT_IMPLEMENTED_EX
Definition: FEXPCommon.h:144
Definition: FEXPSetting.h:31
virtual size_t GetModelId() override
Definition: FEXPSetting.h:65
bool ShowCalcOutput()
Definition: FEXPSetting.h:119
Definition: FEXPDataContainer.h:25
virtual ESettingType GetSettingKind()=0
virtual size_t GetThreadId() override
Definition: FEXPSetting.h:38
std::map< size_t, Ptr< std::vector< std::string > > > & GetFileContentDefault()
Definition: FEXPSetting.h:113
virtual void NetDeserialize(Ptr< t_SerializedData > data) override
Definition: FEXPSetting.h:78
virtual Ptr< t_SerializedData > NetSerialize() override
Definition: FEXPSetting.h:77
std::string & GetResultName()
Definition: FEXPSetting.h:121
Definition: FEXPSetting.h:31
ESettingType
Definition: FEXPSetting.h:31
Base interface for system element.
Definition: FEXPDataContainer.h:28
Base interface for settings.
Definition: FEXPSetting.h:26
CFEXPBaseSetting(t_fexpcommon_ct t_S, t_fexpcommon_ct t_E, t_fexpcommon_ct dt, size_t print_segment, size_t solver, size_t threads)
Definition: FEXPSetting.cpp:10
std::map< size_t, Ptr< std::vector< std::string > > > & GetFileContent()
Definition: FEXPSetting.h:112
Ptr< std::vector< size_t > > GetSimpleModelSchedule()
Definition: FEXPSetting.cpp:52
virtual size_t GetThreadNumber() override
Definition: FEXPSetting.h:39
Definition: FEXPSetting.h:62
virtual void SetThreadId(size_t id) override
Definition: FEXPSetting.h:40
virtual size_t GetId() override
Definition: FEXPSetting.h:36
std::string & GetNodeIp(size_t id)
Definition: FEXPSetting.h:108
t_fexpcommon_ct GetDt()
Definition: FEXPSetting.h:70
virtual size_t GetType() override
Definition: FEXPSetting.h:37
t_fexpcommon_ct GetStart()
Definition: FEXPSetting.h:68
t_fexpcommon_ct GetEnd()
Definition: FEXPSetting.h:69